Multiprotocol label switching (MPLS) networks may be used to forward large data flows (e.g., petabytes of data each) through the MPLS network from a source to a destination. These flows must be assigned to label-switched paths (LSPs) that connect the source and the destination while achieving predetermined optimization criteria (e.g., efficient use of bandwidth, minimization of latency, or satisfaction of a given number of parallel paths for each flow for load-balancing). However, selecting optimal LSPs in long-haul computer networks is difficult because the data flows (e.g., from a particular source to a particular destination) come and go. Existing techniques for assigning paths for data flows assume that there is a predetermined ordering of the data flows. The paths for the data flows are assigned based on the predetermined ordering of the data flows. The predetermined ordering of the data flows is typically determined based on priorities of the data flow. Unfortunately, if the data flows do not include priorities or if two or more data flows have the same priority, the ordering of the data flows is undetermined. Furthermore, as each path is assigned to a data flow, the remaining network resources decrease. The paths assigned to data flows with lower ordering may have paths that are non-optimal. Furthermore, the assignment of the paths for the data flows based on the ordering of the data flows may not be an optimal assignment of paths.
Accordingly, a system and method for assigning paths to data flows without the aforementioned problems is highly desirable.